package com.bs.manager04.utils;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
//controller层返回给用户的信息
// 统一返回结果处理
@ApiModel("响应类")
public class Result {
    // 状态码：
    // 如果成功了 200
    // 失败 500
    // 根据业务定义 值： 比如：
    // 登录时：用户名或密码错误， 501
    // 用户被冻结 502   账号权限不对 503

    @ApiModelProperty("状态码 200:成功 其他都为失败")
    private int code;
    // 返回的消息

    @ApiModelProperty("错误信息")
    private String msg;
    // 返回的数据
    @ApiModelProperty("返回数据")
    private Object data;


    //提供构造方法

    public Result(int code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    // 提供对应的方法，直接调用，不创建对象，直接返回AJaxResult
    public static  Result success(int code, String msg, Object data){
        return  new Result(code, msg, data);
    }

    public static  Result success(int code, String msg){
        return  new Result(code, msg, null);
    }



    public static  Result success( String msg, Object data){
        return  success(200,  msg,  data);
    }

    public static  Result success(Object data){
        return  success(200,  "操作成功",  data);
    }
    public static  Result success( ){
        return  success(200,  "操作成功",  null);
    }

    // 失败的
    public static  Result fail(int code, String msg, Object data){
        return  new Result(code, msg, data);
    }

    public static  Result fail( String msg, Object data){
        return  fail(500,  msg,  data);
    }
    public static  Result fail( int code, String msg){
        return  fail(code,  msg, null);
    }

    public static  Result fail(  Object data){
        return  fail(500,  "操作失败",  data);
    }
    public static  Result fail( ){
        return  fail(500,  "操作失败",  null);
    }




}
